import 'dart:ui';

import 'package:flutter/material.dart';
import 'package:magic_car/user/anserdetail.dart';
import 'package:magic_car/util/HttpHelper.dart';
import 'package:shared_preferences/shared_preferences.dart';
import 'package:toast/toast.dart';

class AnswerPage extends StatefulWidget {
  AnswerPage({Key key, this.title}) : super(key: key);

  final String title;

  @override
  _MyHomePageState createState() => new _MyHomePageState();
}

class _MyHomePageState extends State<AnswerPage> {
  List formList;
  ScrollController _controller = new ScrollController();
  int page=1;
  bool end=false;
  String keyword="";

  initState() {
    super.initState();
    _controller.addListener(() {
      if (_controller.position.pixels ==
          _controller.position.maxScrollExtent) {
        print('滑动到了最底部');
        loadData();
      }
    });

    formList = [
      
    ];
    loadData();
  }
  //加载数据
  loadData() async{
    // if(keyword!=""){
    //   print(keyword);
    // if(end)return;
    // }
    if(end)return;
    Map<String, String> map = new Map();
    SharedPreferences pref = await SharedPreferences.getInstance();
    map["id"] = pref.getString('uid');
    map["page"]=page.toString();
    map["keyword"]=keyword;
    print(map);

    HttpHelper.post(HttpHelper.API_GetAskList, (data) async {
      if (data != null) {
        
        print(data);
        print(data["info"].length.toString());
        if(data["info"].length==0){
          Toast.show('暂无更多数据', context);
        }else{
        if (data["code"].toString() == "1") {
          if(data["info"].length<10){
            setState(() {
              end=true;
            });
          }
          if(page>1){
            List add= data["info"];
            formList.addAll(add);
            setState(() {
              formList=formList;
            });
          }else{
          setState(() {
            formList = data["info"];
            page=page+1;
          });
          }
          

        }
      }
      }
    }, params: map);
  }

  Widget buildImgs(item) {
    List<Widget> tiles = [];

    Widget content;
   

    List items = item["image_url"];

    for (var i = 0; i < items.length; i++) {
      //List temp1 = items[i] as List;
      tiles.add(Padding(
        padding: new EdgeInsets.fromLTRB(5, 0, 0, 10),
        child: GestureDetector(
            onTap: () {
              // print('点击查看图片');
              // Navigator.of(context).push(
              //   NinePicture(items, i),
              // );
            },
            child: Image.network(items[i], width: 100, height: 100)),
      ));
    }
    content = new Wrap(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }

  Widget buildcontent() {
    List<Widget> tiles = [];
    Widget content;
    if(formList.length>0){
    for (var item in formList) {
      tiles.add(Padding(
          padding: new EdgeInsets.fromLTRB(15, 15, 15, 0),
          child: Container(
            decoration: new BoxDecoration(
              color: Colors.white,
            ),
            child: new GestureDetector(
              behavior: HitTestBehavior.opaque,
                onTap: () {
                  Navigator.of(context)
                      .push(new MaterialPageRoute(builder: (_) {
                    return new AnswerdeailPage(item["id"].toString());
                  }));
                },
                child: Column(
                  mainAxisAlignment: MainAxisAlignment.start,
                  crossAxisAlignment: CrossAxisAlignment.start,
                  children: <Widget>[
                    Padding(
                      padding: new EdgeInsets.fromLTRB(20, 15, 20, 10),
                      child: Column(
                        children: <Widget>[
                          Text(item["name"])
                        ],
                      ),
                    ),
                    Padding(
                      padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                      child: buildImgs(item),
                      // child: Row(
                      //   children: <Widget>[Text('总试题数：16')],
                      // ),
                    ),
                    Padding(
                      padding: new EdgeInsets.fromLTRB(20, 10, 20, 10),
                      child: Row(
                        children: <Widget>[
                          Expanded(
                              flex: 1,
                              child: Text(
                                item["add_time"],
                                style: TextStyle(
                                    color: Color.fromRGBO(153, 153, 153, 1),
                                    fontSize: 13),
                              )),
                          Expanded(
                            flex: 1,
                            child: Align(
                                alignment: Alignment.centerRight,
                                child: Container(
                                    height: 30,
                                    child: new RaisedButton(
                                      child: Text('我来回答'),
                                      textColor:
                                          Color.fromRGBO(27, 182, 251, 1),
                                      color: Color.fromRGBO(201, 235, 250, 1),
                                      onPressed: () {
                                        Navigator.of(context).push(
                                            new MaterialPageRoute(builder: (_) {
                                          return new AnswerdeailPage(item["id"].toString());
                                        }));
                                      },
                                    ))),
                          )
                        ],
                      ),
                    ),
                  ],
                )),
          )));
    }
    }
    content = new Column(
        children: tiles //重点在这里，因为用编辑器写Column生成的children后面会跟一个<Widget>[]，
        //此时如果我们直接把生成的tiles放在<Widget>[]中是会报一个类型不匹配的错误，把<Widget>[]删了就可以了
        );
    return content;
  }

  Widget build(BuildContext context) {
    return 
    // new MaterialApp(
    //     title: '结构件',
    //     home: 
        new Scaffold(
            appBar: new AppBar(
              title: new Text(
                '问答',
                style: TextStyle(color: Colors.black),
              ),
              backgroundColor: Colors.white,
              elevation: 0,
              // backgroundColor: Color.fromRGBO(255, 204, 48, 1),
            ),
            body: new Center(
                child: Container(
                    decoration: new BoxDecoration(
                      color: Color.fromRGBO(238, 238, 238, 1),
                    ),
                    // child: new Column(children: <Widget>[
                    //   Container(
                    //     width: 200,
                    //     height: 50,
                    //     child: Text('1111111'),
                    //   ),
                    // child: new ListView(
                    //   children: <Widget>[buildcontent()],
                    // )
                    child:
                        // new ListView(children: <Widget>[
                        Stack(
                      children: <Widget>[
                        Align(
                          alignment: Alignment.topLeft,
                          child: SizedBox(
                              width: double.infinity,
                              height: 60,
                              child: Padding(
                                  padding:
                                      new EdgeInsets.fromLTRB(15, 10, 0, 10),
                                  // padding: new EdgeInsets.all(10),
                                  child: Container(
                                      child: Row(
                                          mainAxisAlignment:
                                              MainAxisAlignment.end,
                                          children: <Widget>[
                                        Expanded(
                                          child: new Container(
                                            child: new TextField(
                                              onSubmitted: (value){
                                                print(value);
                                                //if(value=="")return;
                                                setState(() {
                                                  keyword=value;
                                                  page=1;
                                                  end=false;
                                                });
                                                print('搜索');
                                                loadData();
                                              },
                                              // controller: _phonecontroller,
                                              decoration: new InputDecoration(
                                                  border: InputBorder.none,
                                                  hintText: '搜索',
                                                  prefixIcon:
                                                      Icon(Icons.search)),
                                            ),
                                            decoration: new BoxDecoration(
//背景
                                              color: Colors.white,
                                              //设置四周圆角 角度 这里的角度应该为 父Container height 的一半
                                              borderRadius: BorderRadius.all(
                                                  Radius.circular(25.0)),
                                              //设置四周边框
                                              border: new Border.all(
                                                  width: 1,
                                                  color: Colors.white),
                                            ),
                                          ),
                                        ),
                                        FlatButton(
                                            onPressed: () {
                                              Navigator.pushNamed(context, "upAsk");
                                            },
                                            child: new Text(
                                              "我要提问",
                                              style: TextStyle(
                                                  color: Color.fromRGBO(
                                                      27, 182, 251, 1),
                                                  fontSize: 13),
                                            ))
                                      ])))),
                        ),
                        Align(
                            alignment: Alignment.bottomCenter,
                            child: Padding(
                              padding: new EdgeInsets.fromLTRB(0, 60, 0, 10),
                              child: 
                              new RefreshIndicator(
                                onRefresh: _onRefresh,
                                child: 
                              new ListView(
                                controller: _controller,
                                  children: <Widget>[buildcontent()]),
                            ))),
                      ],
                    )))
        //])))),
        );
  }
   Future<Null> _onRefresh() async {
    await Future.delayed(Duration(seconds: 3), () {
      print('refresh');
      setState(() {
        page=1;
      });
      loadData();
    });
  }

}
